/*******************************************************************************
 * Copyright (C), 2014, BeeIoT Tech. Co., Ltd. 
 * FileName:      option.h
 * Author:        lvxin 
 * Version :      1.0
 * Date:          2014-07-31 10:36:31
 * Description:
 * Function List: // 主要函数及其功能
 * 1. ------- 
 * History:
 * <author>   <time>                <version >  <desc> 
 * lvxin      2014-07-31 10:36:31   1.0         build this moudle 
 ******************************************************************************/

#ifndef  OPTION_H
#define  OPTION_H

/*******************************************************************************
 *  *INCLUDES
 *  */
#include <stdint.h>

/*******************************************************************************
 *  *CONSTANTS
 *  */
#define     MAX_DP_NUMBER   21

/*******************************************************************************
 *  *TYPEDEFS
 *  */

/*
 *每个大棚的数据
 */
typedef struct option_dp
{
  uint16_t   temperature_high;        //最高温度
  uint16_t   temperature_low;         //最低温度
  uint16_t   humidity_high;           //湿度上限
  uint16_t   humidity_low;            //湿度下限
  uint8_t    temperature_switch;      //温度报警开关
  uint8_t    humidity_switch;         //湿度报警开关
  uint8_t    temperature_compensation;//温度补偿
  uint8_t    humidity_compensation;   //湿度补偿
  uint16_t   time_start;              //报警开始时间
  uint16_t   time_stop;               //报警结束时间
  uint32_t  device_id;
}option_dp_t;
/*
 *手机数据
 */
typedef struct option_phone_number
{
  uint8_t number[11];               //手机号码
  uint8_t priority;                 //优先级
}option_phone_t;

typedef struct option_global
{
  uint8_t         _flag;                 //出厂设置标识，0xA5
  option_dp_t     dp[MAX_DP_NUMBER];    //大棚列表
  uint8_t         number;               //现有大棚数
  option_phone_t  telephone[1];         //手机信息
  uint8_t           alarm_mode;     //报警方式 0短信  1微信
  uint8_t         id_menu_cnt[80];		//菜单目录数
  uint16_t        _crc;                  //CRC校验位
}option_t;

extern option_t GreenHouse;

/*******************************************************************************
 *  *PUBLIC FUNCTIONS
 *  */

int option_get (option_t *option);      //获得设置信息
int option_set (option_t *option);    	//保存设置信息
#endif  /*OPTION_H*/
